/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/* 
 * File:   Animal.h
 * Author: dou
 *
 * Created on 2016年2月19日, 上午10:09
 */

#ifndef ANIMAL_H
#define ANIMAL_H

#ifdef __cplusplus
extern "C" {
#endif

#include "../../ooc/inc/Object.h"

#define ANIMAL_PKG  OOC_TEST_PKG

    OOC_abstract OOC_CLASS_DEF_(ANIMAL_PKG, Animal) {
        OOC_EXTENDS(OBJECT_PKG, Object);
        char name[128]; // 动物的昵称(假设小于128个字符)
        int age; // 动物的年龄

        void (*setName)(OOC_PEN(ANIMAL_PKG, Animal)* cthis, const char* name); // 设置动物的昵称
        void (*setAge)(OOC_PEN(ANIMAL_PKG, Animal)* cthis, int age); // 设置动物的年龄 
        OOC_abstract void (*eat)(OOC_PEN(ANIMAL_PKG, Animal) * cthis); // 动物都会吃（抽象方法，由子类实现）
        OOC_abstract void (*breathe)(OOC_PEN(ANIMAL_PKG, Animal) * cthis); // 动物都会呼吸（抽象方法，由子类实现）
        OOC_override    muc8* (*toString)(OOC_PEN(ANIMAL_PKG, Animal)* cthis);
    };



#ifdef __cplusplus
}
#endif

#endif /* ANIMAL_H */

